package br.com.mural.android.webservice;

import java.util.ArrayList;
import java.util.List;

import br.com.mural.android.entidades.Avaliacao;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;

public class AvaliacaoRest {
	private String URL_WS = WebServiceMural.URL_WS + "avaliacao/";

	public Avaliacao getAvaliacao(int id) throws Exception {

		String[] resposta = new WebServiceMural().get(URL_WS + id);

		if (resposta[0].equals("200")) {
			Gson gson = new Gson();
			Avaliacao avaliacao = gson.fromJson(resposta[1], Avaliacao.class);
			return avaliacao;
		} else {
			throw new Exception(resposta[1]);
		}
	}

	public List<Avaliacao> getListaAvaliacao() throws Exception {

		String[] resposta = new WebServiceMural().get(URL_WS + "allGSON");

		if (resposta[0].equals("200")) {
			Gson gson = new Gson();
			ArrayList<Avaliacao> listaAvaliacao = new ArrayList<Avaliacao>();
			JsonParser parser = new JsonParser();
			JsonArray array = parser.parse(resposta[1]).getAsJsonArray();

			for (int i = 0; i < array.size(); i++) {
				listaAvaliacao.add(gson.fromJson(array.get(i), Avaliacao.class));
			}
			return listaAvaliacao;
		} else {
			throw new Exception(resposta[1]);
		}
	}

	public String inserirAvaliacao(Avaliacao avaliacao) throws Exception {
		Gson gson = new Gson();
		String avaliacaoJSON = gson.toJson(avaliacao);
		String[] resposta = new WebServiceMural().postAvaliacao(URL_WS + "inserir", avaliacaoJSON);

		if (resposta[0].equals("200")) {
			return resposta[1];
		} else {
			throw new Exception(resposta[1]);
		}
	}

	public String deletarAvaliacao(int id) {
		String[] resposta = new WebServiceMural().get(URL_WS + "delete/" + id);
		return resposta[1];
	}

}
